For many people, electronic devices are a constant companion. For others, computing devices (such as laptop or tablet computers, desktop computers, smartphones, and e-readers) may be used relatively infrequently—at their jobs or only to perform a specific task, for example. The human-device experience can be less than optimal for these users and others. Those who use their devices frequently may find bothersome the number of steps or the amount of time it takes to perform a specific task, the repetitive nature of certain operations, or the ease with which typographical errors can be made. More casual users or those who seldom use certain features may additionally suffer from lost efficiency due to the difficulty of remembering how to perform a particular task from one session to the next.
Many traditional computing systems understand only discrete pieces of the “real-world” context in which a person is using a computing device. As a result, traditional systems often lack the capabilities needed to fully appreciate the bigger picture of the person's current experience and use that understanding to improve the human-device interface.
Moreover, when compared with traditional desktop or laptop computers, the human-computer interface offered by many personal electronic devices has limitations. Due to the small amount of real estate available for display screens and controls, and in some cases, limitations of mobile device operating systems and computing power, interacting with a mobile device can be tedious. This can be so, particularly when the interaction requires specifying multiple inputs and/or accessing multiple software applications on the mobile device.